Many applications have presented users with the option to paint a digital picture by making digital brush strokes. At its most basic form, rendering a digital brush stroke involves application of a user input stroke, which may be indicated by movement of a pointing device across an electronic canvas, to a particular stroke synthesis technology, such as an algorithm, to obtain an output of a digital brush stroke following the input stroke. Unlike with traditional, physical painting, there exists some lag time between the user's input and the rendering of the digital brush stroke. For the painting experience to be interactive, however, it is desirable to reduce this lag time as much as possible to have the digital brush stroke displayed almost immediately as the input stroke moves across the electronic canvas. A digital brush stroke synthesized in near real time, or “on the fly,” provides a user with more control.
This lag time during rendering is particularly prominent with more complex stroke synthesis technologies, such as data-driven approaches that use real brush stroke samples to recreate a natural appearing digital brush stroke. While these complex approaches have the advantage of providing output closely resembling physical painting media, they tend to require more processing to render the digital brush stroke, thereby increasing the lag time for the output to be displayed. Further, data-driven models also experience difficulties in parameterizing corner regions of a curve in a way to prevent artifacts, texture stretching, and shape distortion, all of which limit the natural appearance of a curvy, digital brush stroke.